package xyz.xtt.third.response;

import java.io.Serializable;

import org.hibernate.validator.constraints.Length;

import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author huqibo
 *
 */
@NoArgsConstructor
@AllArgsConstructor
@NotEmpty
@Builder
@Data
public class QueryAssetInfoResponse implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@ApiModelProperty(value = "资产类型 GROUND地皮 BIZ_CERTIFICATE经营证")
	private String typeCode;
	@ApiModelProperty(value = "合约类型 721/1155")
	private String tokenType;
	@ApiModelProperty(value = "资产源数据")
	@Length(min = 2, message = "资产数据不能为空")
	private Object metaData;
	@ApiModelProperty(value = "资产源数据")
	@Length(min = 10, max = 1024, message = "资产url不能为空且不能超过1024长度")
	private String fileUrl;
	@ApiModelProperty(value = "资产数量")
	@Min(value = 1, message = "资产数量必须大于1")
	private Integer nums;
	@ApiModelProperty(value = "拥有人")
	@Length(max = 64, message = "资产url不能为空且不能超过64长度")
	@NotEmpty(message = "拥有者不能为空")
	private String ownerId;
	@ApiModelProperty(value = "付款方式 1 通宝 2通钻 3人民币")
	@Min(value = 1, message = "不支持的付款方式")
	@Max(value = 3, message = "不支持的付款方式")
	private Integer unit;
	@ApiModelProperty(value = "链框架id")
	private Integer chainId;
	@Min(value = 0, message = "不支持的付款方式")
	private Double price;
	@ApiModelProperty(value = "资产名称")
	@NotEmpty(message = "资产名称不能为空")
	private String name;
	@ApiModelProperty(value = "起售时间")
	private Long sellStart;
	@ApiModelProperty(value = "交易hash")
	private String txHash;
	@ApiModelProperty(value = "上链时间")
	private Long upTime;
}
